マウスホイールで画像を拡大縮小する
今週は、ちょっと上級者向けのJavaScriptテクニックとして「マウスホイールで画像を拡大縮小する方法」を紹介します。通常、マウスホイールはページをスクロールさせるものですが、こういった使い方も面白いと思いますよ!

→ 画像にIDを付ける
 
JavaScriptで画像を操作するには、その画像にIDをつけておく必要があります。拡大縮小する画像は「IMG」タグにid属性を追加し、個別のIDを付けておきましょう。今回の例では「id="img01"」とし、画像のIDを「img01」としています。
<IMG src="img01.jpg" id="img01">


→ onmousewheelイベントで自作関数を呼び出す
 
続いては、マウスホイールを動かしたときに自作関数を呼び出す記述を行います。ホイール操作はonmousewheelイベントで検出できるので、これを「BODY」タグに追加し、ホイールを動かすたびに自作関数「zoom()」が呼び出されるようにします。なお、onmousewheelイベントはInternet Explorer 6で初めて採用されたイベントとなります。それ以前のInternet ExplorerおよびNetscape Navigatorでは、onmousewheelイベントを記述しても無視されてしまいます。
<BODY onmousewheel="zoom()">


→ 画像を拡大縮小させる関数を自作する
 
あとはJavaScriptの記述すればページが完成します。最初に画像の表示倍率を指定する変数「size」の初期値を「1」に指定します。自作関数「zoom()」では、マウスホイールの動きをもとに変数「size」の値を変化させ「img01」の表示倍率を変更します。ホイールの動きはevent.wheelDeltaで検出できますが、これにより返される値は120の倍数となり、ホイールが動された方向により±が変化します。この値を変数「swt」に代入し、「swt」の値に応じて表示倍率「size」を変化させます。これにはif文を使い、「swtが-120以下」かつ「sizeが0.2より大きい」(sizeが0以下にならないように)場合は「size」を0.1減少、それ以外の場合は「size」を0.1増加させます。あとは「img01.style.zoom=size」で画像「img01」の表示倍率を変更すれば自作関数「zoom()」は完成です。
<HTML>
<HEAD>
  <TITLE>初めてのホームページ作成</TITLE>
</HEAD>

<SCRIPT language="JavaScript">
size=1;
function zoom(){
  swt=event.wheelDelta;
  if(swt<=-120 && size>0.2){size=size-0.1}
    else{size=size+0.1}
  img01.style.zoom=size;
}
</SCRIPT>

<BODY onmousewheel="zoom()">
下の画像はマウスホイールで拡大縮小できます。<BR>
※対応ブラウザはInternet Explorer 6以上です。<BR>
<IMG src="img01.jpg" id="img01">

</BODY>

</HTML>


e[NECir Yahoo yV LINEf[^[z500~`I
z[y[W NWbgJ[h COiq@COsI COze